package com.yupi.yupicturebackend.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * AI图片生成任务实体
 *
 * @author yupi
 */
@TableName(value = "ai_generation_task")
@Data
public class AIGenerationTask implements Serializable {

    /**
     * 任务ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 任务唯一标识
     */
    private String taskId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 提示词
     */
    private String prompt;

    /**
     * 负面提示词
     */
    private String negativePrompt;

    /**
     * AI模型
     */
    private String model;

    /**
     * 图片宽度
     */
    private Integer width;

    /**
     * 图片高度
     */
    private Integer height;

    /**
     * 生成数量
     */
    private Integer numImages;

    /**
     * CFG Scale
     */
    private Double cfgScale;

    /**
     * 生成步数
     */
    private Integer steps;

    /**
     * 随机种子
     */
    private Long seed;

    /**
     * 风格预设
     */
    private String stylePreset;

    /**
     * 采样器
     */
    private String sampler;

    /**
     * 任务状态 (pending, processing, completed, failed)
     */
    private String status;

    /**
     * 生成结果URL列表 (JSON格式)
     */
    private String resultUrls;

    /**
     * 生成耗时（毫秒）
     */
    private Long duration;

    /**
     * 质量评分
     */
    private Double qualityScore;

    /**
     * 内容安全检测结果
     */
    private Boolean contentSafe;

    /**
     * 生成成本（积分）
     */
    private Integer cost;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 扩展配置 (JSON格式)
     */
    private String extendConfig;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    @TableLogic
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
